// pages/myself/Myself.js
let network = null;
let utils = null;
let api = null;
let Zan = require('../../dist/index');
let WxNotificationCenter = require('../../utils/WxNotificationCenter.js');
const app = getApp();

Page(Object.assign({}, Zan.TopTips, {

  /**
   * 页面的初始数据
   */
  data: {
    avatarUrl: null,
    nickName: null,
    type: 1,
    typeName: '商户入驻',
    formId: '',
    couNum: 0,
    canIUse: wx.canIUse('button.open-type.getUserInfo'),
    // canIUseMobile: wx.canIUse('button.open-type.getPhoneNumber')
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    network = new app.NetWorkUtils();
    utils = new app.Utils();
    api = new app.Api();

    // 注册列表刷新事件
    WxNotificationCenter.addNotification("RefreshNotification", this.refreshNotification, this)
    // 注册列表刷新事件
    WxNotificationCenter.addNotification("RefreshMyselfCount", this.refreshMyselfCount, this)

    wx.getUserInfo({
      success: res => {
        this.setData({
          avatarUrl: res.userInfo.avatarUrl,
          nickName: res.userInfo.nickName,
        })
      }
    })

    /**
    * 1.如果有opneId则直接获取用户信息，否则在回调opneIdCallback中获取
    * 2.创建（修改）用户
    */
    if (app.globalData.openId) {
      network._post_json(this, api.getUserInfo, { openId: app.globalData.openId }, userSuccess);
    } else {
      // 由于 openId 是网络请求，可能会在 Page.onLoad 之后才返回
      // 所以此处加入 callback 以防止这种情况
      app.openIdCallback = res => {
        network._post_json(this, api.getUserInfo, { openId: res }, userSuccess);
      }
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    app.globalData.timeStamp = app.globalData.timeStamp + 500;
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    WxNotificationCenter.removeNotification("RefreshNotification", this);
    WxNotificationCenter.removeNotification("RefreshMyselfCount", this);
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
    * 如果用户已授权，并且用户昵称不为空，则直接弹框
    */
  getUserInfo: function (e) {
    console.log('--------------')
    console.log(e)
    if (e.detail.userInfo) {
      let userInfo = e.detail.userInfo;
      this.setData({
        avatarUrl: userInfo.avatarUrl,
        nickName: userInfo.nickName,
      })

      // 创建（修改）用户
      network._post_json(this, api.addUser, { openId: app.globalData.openId, gender: userInfo.gender, nickName: userInfo.nickName, avatarUrl: userInfo.avatarUrl }, addUserSuccess);
    }
  },

  formSubmit: function (e) {
    this.setData({
      formId: e.detail.formId
    })
  },

  // getPhoneNumber: function (e) {
  //   if (utils.canTap(e)) {
  //     if (e.detail.encryptedData) {
  //       network._post_json(this, api.wxphone, { encryptedData: e.detail.encryptedData, iv: e.detail.iv, sessionKey: app.globalData.sessionKey }, bindSuccess);
  //     }
  //   }
  // },

  /**
   * 我的优惠券
   */
  goMyCoupon: function (e) {
    if (utils.canTap(e)) {
      wx.navigateTo({
        url: '/pages/myself/coupon/MyCoupon?index=0'
      })
    }
  },

  /**
   * 商家入驻
   */
  goMerchantEntry: function (e) {
    if (utils.canTap(e)) {
      if (this.data.type == 1) {
        wx.navigateTo({
          url: '/pages/myself/merchant/MerchantEntry'
        })
      } else if (this.data.type == 2) {
        wx.navigateTo({
          url: '/pages/myself/merchant/MerchantBrand'
        })
      }
    }
  },

  /**
  * 刷新地址
  */
  refreshNotification: function () {
    this.setData({
      type: 2,
      typeName: '我是商户',
    })
  },

  /**
    * 优惠券数量
    */
  refreshMyselfCount: function () {
    this.setData({
      couNum: this.data.couNum + 1
    })
  }

  /**
   * 手指触摸动作开始 记录起点X坐标
   */
  // touchstart: function (e) {
  //   //开始触摸时 重置所有删除
  //   this.data.items.forEach(function (v, i) {
  //     if (v.isTouchMove)//只操作为true的
  //       v.isTouchMove = false;
  //   })
  //   this.setData({
  //     startX: e.changedTouches[0].clientX,
  //     startY: e.changedTouches[0].clientY,
  //     items: this.data.items
  //   })
  // },
}))

/**
 * 获取用户信息
 */
var userSuccess = function (that, res) {
  if (res.data.data) {
    // type=1普通用户，type=2商户
    app.globalData.userInfo = res.data.data;
    that.setData({
      type: res.data.data.type,
      couNum: res.data.data.couNum,
      typeName: res.data.data.type == 1 ? '商户入驻' : '我是商户'
    })
  }
}

/**
 * 添加或修改用户信息
 */
var addUserSuccess = function (that, res) {
  if (res.data.data) {
    network._post_json(that, api.getUserInfo, { openId: app.globalData.openId }, userSuccess);

    // type=1普通用户，type=2商户
    // app.globalData.userInfo = res.data.data;
    // that.setData({
    //   type: res.data.data.type ? res.data.data.type : 1,
    //   typeName: that.data.type == 1 ? '商户入驻' : '我是商户'
    // })
  }
}

var fromIdSuccess = function (that, res) { }

var sendCoupnSuccess = function (that, res) { }

// var ie6 = /msie 6/i.test(navigator.userAgent);
// var tableDv = $('.main .tab dt');
// var st;
// tableDv.attr('otop', tableDv.offset().top); //存储原来的距离顶部的距离
// $(window).scroll(function () {
//   st = Math.max(document.body.scrollTop || document.documentElement.scrollTop);
//   if (st >= parseInt(tableDv.attr('otop'))) {
//     if (ie6) {//IE6不支持fixed属性，所以只能靠设置position为absolute和top实现此效果
//       tableDv.css({ position: 'absolute', top: st });
//     }
//     else if (tableDv.css('position') != 'fixed') tableDv.css({ 'position': 'fixed', top: 0 });
//   } else if (tableDv.css('position') != 'static') tableDv.css({ 'position': 'static' });
// });